/**
 * 安全配置
 * 控制控制台访问等功能
 */

// 控制台访问开关
// true: 禁止打开控制台
// false: 允许打开控制台
export const DISABLE_CONSOLE = false

// 开发环境自动禁用控制台保护
const isDevelopment = import.meta.env.DEV

// 实际的控制台禁用状态
// 在开发环境中，无论DISABLE_CONSOLE设置如何，都允许控制台访问
export const isConsoleDisabled = DISABLE_CONSOLE && !isDevelopment

/**
 * 初始化安全设置
 */
export const initSecurity = () => {
  if (isConsoleDisabled) {
    disableConsole()
  }
}

/**
 * 禁用控制台
 */
const disableConsole = () => {
  // 禁用F12
  document.addEventListener('keydown', (e) => {
    if (e.key === 'F12') {
      e.preventDefault()
      return false
    }
    
    // 禁用Ctrl+Shift+I (开发者工具)
    if (e.ctrlKey && e.shiftKey && e.key === 'I') {
      e.preventDefault()
      return false
    }
    
    // 禁用Ctrl+Shift+J (控制台)
    if (e.ctrlKey && e.shiftKey && e.key === 'J') {
      e.preventDefault()
      return false
    }
    
    // 禁用Ctrl+U (查看源码)
    if (e.ctrlKey && e.key === 'u') {
      e.preventDefault()
      return false
    }
    
    // 禁用Ctrl+S (保存页面)
    if (e.ctrlKey && e.key === 's') {
      e.preventDefault()
      return false
    }
  })

  // 禁用右键菜单
  document.addEventListener('contextmenu', (e) => {
    e.preventDefault()
    return false
  })

  // 禁用选择文本
  document.addEventListener('selectstart', (e) => {
    e.preventDefault()
    return false
  })

  // 禁用拖拽
  document.addEventListener('dragstart', (e) => {
    e.preventDefault()
    return false
  })

  // 监听开发者工具打开
  let devtools = {
    open: false,
    orientation: null
  }

  const threshold = 160

  setInterval(() => {
    if (window.outerHeight - window.innerHeight > threshold || 
        window.outerWidth - window.innerWidth > threshold) {
      if (!devtools.open) {
        devtools.open = true
        handleDevToolsOpen()
      }
    } else {
      devtools.open = false
    }
  }, 500)

  // 处理开发者工具打开
  const handleDevToolsOpen = () => {
    // 可以在这里添加自定义处理逻辑
    
    // 可选：重定向到错误页面或显示警告
    // window.location.href = '/error'
  }

  // 禁用console方法
  if (typeof console !== 'undefined') {
    console.log = () => {}
    console.info = () => {}
    console.warn = () => {}
    console.error = () => {}
    console.debug = () => {}
  }
}

/**
 * 启用控制台（开发环境使用）
 */
export const enableConsole = () => {
  // 控制台已启用
} 